package ig.util;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.File;
import java.io.OutputStream;
import java.util.Properties;


/**
 * @author Jimmy Sancchez
 *
 * Clase utilizada para cargar propiedades desde un archivo .properties 
 */
public class LoadProperties {

    private static Properties props = null;
    private static File f = null;
    private static String msg = null;

    /**
	 * Constructor de la clase
	 */
    private static void loadProperties(String file) {
        props = new Properties();//para cargar propiedades de un archivo 
        f = new File(file);
        String msg = null;
        if (f.exists()) {
            try {
                InputStream is = new BufferedInputStream(new FileInputStream(f));
                props.load(is);
                is.close();
            } catch (Exception e) {
                System.out.println("No se pudo leer el archivo de propiedades.");
            }
        }//if
    }

    public static Properties loadPropertiess(String file) {
        props = new Properties();//para cargar propiedades de un archivo 
        f = new File(file);
        String msg = null;
        if (f.exists()) {
            try {
                InputStream is = new BufferedInputStream(new FileInputStream(f));
                props.load(is);
                is.close();
            } catch (Exception e) {
                System.out.println("No se pudo leer el archivo de propiedades.");
            }
        }//if
        return props;
    }

    public static boolean storePropertiess(Properties prop, String file, String comentario) {
        f = new File(file);
        //if (f.exists()) {
        try {
            OutputStream os = new BufferedOutputStream(new FileOutputStream(f));
            prop.store(os, comentario);
            os.close();
        } catch (Exception e) {
            System.out.println("No se pudo Guardar las propiedades.");
            return false;
        }
        //}//if
        return true;
    }
    /**
	 * Retorna el valor asociado al parametro "cadena" qeu se encuentra el archivo .properties
	 * @param cadena el nombre de la propiedad que se quiere cargar
	 * @return valor asociado al parametro "cadena"
	 */

    public static String getProperties(String file, String cadena) {
        loadProperties(file);
        msg = props.getProperty(cadena);
        return msg;
    }
}